#include "db.h"
#include <muduo/base/Logging.h>
#include <string>
// 数据库配置信息
static string server = "127.0.0.1";
static string user = "mrant";
static string password = "123456";
static string dbname = "chat";
MySQL::MySQL()
{
    _conn = mysql_init(nullptr);
}
MySQL::~MySQL()
{
    if (_conn != nullptr)
    {
        mysql_close(_conn);
    }
}
bool MySQL::connect()
{
    MYSQL *p = mysql_real_connect(_conn, server.c_str(), user.c_str(),
                                  password.c_str(), dbname.c_str(), 3306, nullptr, 0);
    if(p!=nullptr){
        //C/C++默认字符编码为ASCII，需要设置为gbk
        mysql_query(_conn,"set names gbk");  
        LOG_INFO<<"connect mysql success!";  
    }
    else{
        LOG_INFO<<"connect mysql fail!";  
    }
    return p;
}

bool MySQL::update(string sql)
{   //若为update返回bool，如果是select则返回资源；成功返回true，失败返回false。
    if(mysql_query(_conn,sql.c_str())){
        LOG_INFO <<__FILE__<<":"<<__LINE__<<":"<<sql<<"更新失败";
        return false;
    }
    return true;
}

MYSQL_RES *MySQL::query(string sql)
{
    if(mysql_query(_conn,sql.c_str())){
        LOG_INFO<<__FILE__<<":"<<__LINE__<<":"<<sql<<"查询失败";
        return nullptr;
    }
    return mysql_use_result(_conn);
}
MYSQL* MySQL::getConn(){
    return _conn;
}
